本系列文章所討論的 JavaScript 資安與逆向工程技術,旨在分享知識、探討防禦之道,並促進技術交流。
所有內容僅供學術研究與學習,請勿用於任何非法或不道德的行為。
讀者應對自己的行為負完全責任。尊重法律與道德規範是所有技術人員應共同遵守的準則。
本文同步發布:https://nicklabs.cc/algorithms-base64-aes-des
在進行 JavaScript 逆向工程時,我們常會看到資料不是直接明文傳輸,而是經過某種演算法處理。
這些處理方式不僅能混淆請求參數,也能增加逆向難度。
許多新手會誤以為 Base64 是一種加密技術但這不是正確的。
Base64 的主要目的是將二進位資料轉換成可列印的 ASCII 字元字串。
會這麼做的主因是因為在網路傳輸或儲存資料時,有些環境只支援純文字,例如 URL 或 JSON 格式。
將圖片、音訊或其他非文字檔案轉換為字串。
編碼後可以輕易地還原成原始資料。
編碼後的字串長度會增加約 33%。
任何人都能輕鬆還原,不具備安全性。
在DES被認為不安全後,由美國國家標準與技術研究院選出的新一代加密標準。
常用於API的敏感資料加密。
由於金鑰長度更長,AES 提供了更高的安全性,至今仍被認為是安全的。
如果金鑰或IV被寫死在前端,逆向即可取得明文。
DES是對稱式加密演算法,加密和解密都使用相同的金鑰。
過去廣泛使用,但現已逐漸被 AES 取代。
56bit 金鑰相對較短。
金鑰太短,因為現在電腦的算力強勁所以相對容易被暴力破解。